package com.platform.modules.cpt.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.platform.modules.cpt.entity.CptAcceptanceEntity;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.activiti.engine.delegate.DelegateExecution;


public interface CptAcceptanceService extends IService<CptAcceptanceEntity> {

	/**
	 * @descr 分页查询，params 含分页参数
	 * @param params
	 * @return
	 */
	IPage<CptAcceptanceEntity> queryPage(Map<String, Object> params);

	/**
	 * @descr 分页查询，params 含分页参数
	 * @param params
	 * @return
	 */
	CptAcceptanceEntity queryOne(Map<String, Object> params);


	/**
	 * @descr 分页查询，params 含分页参数
	 * @param params
	 * @return
	 */
	List<CptAcceptanceEntity> queryList(Map<String, Object> params);


	/**
	 * 更新 竣工验收监督申请状态
	 * @param execution
	 */
	void updateStatus(DelegateExecution execution);
	
	/**
	 * 发起 竣工验收监督申请
	 * @param execution
	 */
	void start(DelegateExecution execution);
	
	/**
	 * 生成工程竣工验收监督通知书(后续盖章)
	 * @param execution
	 */
	Map<String, Object> createGcjgysjdtzsFile(CptAcceptanceEntity cptAcceptanceEntity);

	/**
	 * 下载工程竣工验收监督通知书文件流
	 * @param execution
	 */
	void downloadGcjgysjdtzsFile(String cptId, HttpServletRequest request, HttpServletResponse response);
	
	/**
	 * 盖章-工程竣工验收监督通知书文件
	 * @param request
	 * @param cptId
	 */
	void signGcjgysjdtzsFile(HttpServletRequest request, String cptId);
}
